import java.util.Arrays;
import java.util.HashMap;
import java.util.Stack;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * user:likai
 * Date:2023-01-21
 * Time:21:06
 */
class Solution {
    public int carFleet(int target, int[] position, int[] speed) {
        //在距离未到达之前不能超过前面的车
        //看起点位置
        //看速度
        //算时间，起点小的，时间超过前边的，算一个车队
        HashMap<Integer,Double> map=new HashMap<>();
        //算时间需要多少,每个位置的速度是多少
        //从位置开始计算，位置小时间短，
        int n=position.length;
        double []time=new double[n];
        for (int i = 0; i < n; i++) {
            time[i]=(target-position[i])/(double)speed[i];
            map.put(position[i],time[i]);
        }
        Arrays.sort(position);
        //排序完位置之后，每一个位置都需要查一遍，位置最小的开始，时间大就存一个，时间比前一个小的，通过栈来储存
        Stack<Double> stack=new Stack<>();
        for (int i = 0; i < n; i++) {
            while(!stack.isEmpty()&&map.get(position[i])>=stack.peek()){
                stack.pop();
            }
            stack.push(map.get(position[i]));
        }

        return stack.size();
    }
}
public class Test {
    public static void main(String[] args) {
//        int arr[]={2,1,3,4,5};
//        Arrays.sort(arr);
//        System.out.println(Arrays.toString(arr));
    }
}
